package org.yzsd.modules.base;

import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.ObjectUtil;

import java.io.Serializable;

/**
 * <说明>
 * 数据表的DO对象，需要实现该接口
 *
 * @Description：TODO
 * @Author Lay(czx)
 * @Date 2022/7/13 09:19
 * @Version 2.0
 */
public interface GooditsEntity<T extends Serializable> {

    /**
     * ID唯一字段
     *
     * @return
     */
    public T getId();

    public void setId(T t);

    /**
     * <描述> <br/>
     * 校验ID有效性，校验通过则返回ID，否则直接抛出异常
     *
     * @Description
     * @author Lay(czx)
     * @date 09:36 2022/7/13
     */
    default T validateId() {
        T id = getId();
        Assert.isTrue(ObjectUtil.isNotEmpty(id), () -> new IllegalArgumentException("error : id is null"));
        return id;
    }
}
